package com.mainService.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.mainService.bean.ComprehensiveDownload;
import com.projectCommon.bean.Smoke;
import com.projectCommon.bean.dto.SmokeDto;
import com.projectCommon.bean.easyExcel.CSVSmokeInfo;
import com.projectCommon.bean.easyExcel.ExcelSmokeInfo;
import com.projectCommon.bean.result.CheckInfoRes;
import com.projectCommon.bean.result.SmokeNews;

import java.io.FileNotFoundException;
import java.util.List;
import java.util.Map;

/**
 * @author 吴宇~
 * @motto 我亦无他，唯手熟尔。
 * @edition jdk1.8
 * @reflection 0-1 喧闹任其喧闹，自由我自为之，我自风情万种，与世无争。
 * @date 2024/04/04/20:47
 * @target 心若有所向往，何惧道阻且长
 */
public interface SmokeService extends IService<Smoke> {
//    /**
//     * @param csvByte 传入csv文件的byte数组
//     * @return 返回经过转换的byte数组
//     */
//    byte[] getOrderPictureByCSVOrderFile(byte[] csvByte) throws FileNotFoundException;

    /**
     * 下载当前用户的订单图片
     *
     * @return 返回图片
     */
    byte[] getLastOrderPic(String template);

    /**
     * 返回最新的   所有烟的信息的图片
     *
     * @return 返回图片的byte数组
     */
    byte[] getSmokeListPicByte(String templateType);

    byte[] excelToPic(byte[] excelByte);

//    Map<String, Object> getDataMap(List<ExcelSmokeInfo> smokeInfos);

    List<ExcelSmokeInfo> getBaseExcelSmokeInfo(List<CSVSmokeInfo> baseSmokeInfos);

    CheckInfoRes checkInfo();

    CheckInfoRes updateDatabase(CheckInfoRes checkInfoRes);

    Map updateOtherData();

    Map<String, List<String>> downDeficiencyPic();

    //这个不同于check那个方法， 因为这儿是从 查询数据库的差距，而不是。当前数据库和网站的差距。 为啥要有这么一个接口，是为了  之后页面可能也需要这个数据
    Map<String, List<SmokeNews>> queryLatelyAlertSmoke();

    Map<String, Object> getExcelListMap(List<CSVSmokeInfo> baseSmokeInfos);

    /**
     * 得到周货源投放策略图片信息
     * @return 返回byte数组
     */
    byte[] getWeeklySupplyPlacementStrategyPicInformation();

    /**
     * 得到周货源投放策略excel信息
     * @return 返回 excel 的byte数组
     */
    byte[] getWeeklySupplyPlacementStrategyExcelInformation();

    /**
     * 得到周货源投放策略图片信息
     * @param fileType 需要文件类型，图片或者excel
     * @param csvByte csv文件字节码
     * @return 返回结果信息byte数组
     */
    byte[] getWeeklySupplyPlacementStrategyPicInformationByCsv(String fileType,byte[] csvByte,String fileName);

    byte[] comprehensiveDownload(ComprehensiveDownload comprehensiveDownload);
}

